#include "PanelLogin.h"
#include <iostream>
#include <string>

PanelLogin::PanelLogin(int ancho, int alto):
    frame_Horizontal("Autenticación"),
    label_login("Nickname"), label_pass("Contraseña"),
    button_loguear("Ingresar"),
    button_registrarse("Registrarme") {
    cargarImagenFondo(IMAGEN_FONDO_LOGIN, 
                        ancho, alto);

    contWidgetsLogin.set_size_request(ANCHO_LOGIN, ALTO_LOGIN);
    //almaceno el contenedor de los widgentis para loguearse
    put(contWidgetsLogin, X_LOGIN, Y_LOGIN);

    establecerTamanioWidgets();

    insertarWidgets();
}

PanelLogin::~PanelLogin() { }

std::string PanelLogin::obtenerUsuario() {
    return entry_login.get_text();
}

std::string PanelLogin::obtenerPass() {
    return entry_pass.get_text();
}

void PanelLogin::agregarMensaje(std::string mensaje) {
    contWidgetsLogin.remove(label_error);

    label_error.set_text(mensaje);

    contWidgetsLogin.put(label_error, 0, 0);

    contWidgetsLogin.show_all_children();
}

void PanelLogin::insertarWidgets() {
    //variables para ubicar centrados los widgets
    int auxTam = 0, auxTamNatural = 0;

    label_login.get_preferred_width(auxTam, auxTamNatural);
    contWidgetsLogin.put(label_login, ANCHO_LOGIN / 2 - auxTam / 2, 0);

    entry_login.get_preferred_width(auxTam, auxTamNatural);
    contWidgetsLogin.put(entry_login, ANCHO_LOGIN / 2 - auxTam / 2 , 50);

    label_pass.get_preferred_width(auxTam, auxTamNatural);
    contWidgetsLogin.put(label_pass, ANCHO_LOGIN / 2 - auxTam / 2, 100);

    entry_pass.get_preferred_width(auxTam, auxTamNatural);
    contWidgetsLogin.put(entry_pass, ANCHO_LOGIN / 2 - auxTam / 2 , 150);

    contWidgetsLogin.put(button_loguear, 0, ALTO_LOGIN - 20);
    contWidgetsLogin.put(button_registrarse, ANCHO_LOGIN - 100, 
                            ALTO_LOGIN - 20);
}

void PanelLogin::establecerTamanioWidgets() {
    label_login.override_color(Gdk::RGBA("white"), Gtk::STATE_FLAG_NORMAL);
    label_login.set_size_request(150, 30);
    entry_login.set_size_request(150, 30);

    label_pass.override_color(Gdk::RGBA("white"), Gtk::STATE_FLAG_NORMAL);
    label_pass.set_size_request(150, 30);
    entry_pass.set_size_request(150, 30);

    button_loguear.set_size_request(140, 30);
    button_registrarse.set_size_request(140, 30);
}
